<?php
namespace app\admin\command;

use think\console\Command;
use think\console\Input;
use think\console\Output;
use app\common\model\Erp;
use think\Db;
/**
*   同步erp中修改过的用户到club 平台, 这个命令包含了Adduser 定时功能，可以停掉adduser计划
*/

class Moduser extends Command
{
    protected function configure()
    {
        $this->setName('Moduser')->setDescription("同步erp中修改过的用户到club 平台");
    }

    protected function execute(Input $input, Output $output)
    {

        // */5 * * * *  /usr/bin/php /www/wwwroot/web/dress/think Moduser
        $output->writeln('定时命令开始执行...');

        //先获取，最大的用户注册时间
        $map['LASTTIME'] = strval(date('Ymd H:i:s', \think\Db::table('d_users')->max('modify_time')));
        // $map['LASTTIME'] = $max_time;

        $erp = new Erp();
        $list = $erp->erp_add($map);
        $list_arr = json_decode($list, 1);
        $list_toarray = $list_arr['item'];
        // dd($list_toarray);

        $insertData = [];
        foreach ($list_arr['item'] as $key => $value) {

            //组建数据
            $data = [
                'vip_number' => $value['VIPCARD'],
                'phone' => $value['MOBIL'],
                'truename' => $value['VIPNAME'],
                'level_id' => $value['VIPTYPE'],
                'gender' => $value['SEX']== 'M' ? '1' : '2',
                'user_end_time' => strtotime($value['VALIDDATE']),
                'birthday' => $value['BIRTHDAY'],
                'country' => $value['COUNTRY'],
                'city' => $value['CITY'],
                'create_at' => strtotime($value['CREATIONDATE']),
                'modify_time' => strtotime($value['MODIFIEDDATE']),
                'portrait' => $value['SEX']== 'M' ? 'default/gender1.png' : 'default/gender2.png',
                'status' => 1   
            ];

            //判断当前用户是否存在
            $is_user = Db::table('d_users')->where('phone', $value['MOBIL'])->find();

            if($is_user){
                //用户存在的话就修改用户的数据
                Db::startTrans();
                try{
                    Db::table('d_users')->where('phone', $value['MOBIL'])->update($data);
                    // 提交事务
                    Db::commit();    
                } catch (\Exception $e) {
                    // 回滚事务
                    Db::rollback();
                }

            } else{
                //用户不存在的情况
                // 启动事务
                Db::startTrans();
                try{
                    Db::table('d_users')->insert($data);
                    // 提交事务
                    Db::commit();    
                } catch (\Exception $e) {
                    // 回滚事务
                    Db::rollback();
                }

            }
            
        }
        
        $output->writeln('定时命令执行已经结束...');
    }

    /**
    *   日志
    *   content    内容
    *   status    状态：Y/N
    */
    public function add_log($content, $status)
    {
        $data = [
            'content' => $content,
            'status' => $status,
            'create_at' => time()
        ];

        $res = \think\Db::table('d_erp_syn_log')->insert($data);

        return $res;
    }
}